Julia 构造函数
阐述
创建新 Julia 复合类型的实例函数,并以该类型的名称为名。默认情况下该函数自动具备一个内构造方法。我们可以定义自己的内构造或外构造方法,但如果定义了内构造方法,则默认的内构造方法将取消。
内构造方法
在复合类型内部定义,通过调用 new
函数产生新的实例。new
调用时不必提供所有的值,产生一个未完全初始化的结果:
- 在该方法内部用于定义某些自引用的类型
- 可以返回未初始化的值或传给其他函数进行初始化
在调用 new
函数时,如果类型与对应字段类型不符合,将会 Julia 转换到指定类型。
外构造方法
在类型的外部定义新的方法并通过调用现有的构造函数实现。
实例
外构造方法:用于方便性
julia> struct Foo
bar
baz
end
julia> foo = Foo(1, 2)
Foo(1, 2)
julia> Foo(x) = Foo(x,x)
Foo
julia> Foo(1)
Foo(1, 1)